// This example shows how the current node and selected nodes can be persisted between dialog invocations. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. using System.Windows.Forms; using OpcLabs.EasyOpc.UA.Forms.Browsing; namespace UAFormsDocExamples._UABrowseDialog { static partial class ShowDialog { public static void SelectionDescriptors(IWin32Window owner) { // The variables that persist the current and selected nodes. var currentNodeDescriptor = new UABrowseNodeDescriptor(); var selectionDescriptors = new UABrowseNodeDescriptorCollection(); // The initial current node (optional). currentNodeDescriptor.EndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // Repeatedly show the dialog until the user cancels it. do { var browseDialog = new UABrowseDialog(); browseDialog.Mode.MultiSelect = true; // Set the dialog inputs from the persistence variables. browseDialog.InputsOutputs.CurrentNodeDescriptor = currentNodeDescriptor; browseDialog.InputsOutputs.SelectionDescriptors.Clear(); foreach (UABrowseNodeDescriptor browseNodeDescriptor in selectionDescriptors) browseDialog.InputsOutputs.SelectionDescriptors.Add(browseNodeDescriptor); DialogResult dialogResult = browseDialog.ShowDialog(owner); if (dialogResult != DialogResult.OK) break; // Update the persistence variables with the dialog output. currentNodeDescriptor = browseDialog.InputsOutputs.CurrentNodeDescriptor; selectionDescriptors.Clear(); foreach (UABrowseNodeDescriptor browseNodeDescriptor in browseDialog.InputsOutputs.SelectionDescriptors) selectionDescriptors.Add(browseNodeDescriptor); } while (true); } } }
' This example shows how the current node and selected nodes can be persisted between dialog invocations. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . ' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET . ' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own ' a commercial license in order to use Online Forums, and we reply to every post. Imports OpcLabs.EasyOpc.UA.Forms.Browsing Namespace UAFormsDocExamples._UABrowseDialog Partial Friend Class ShowDialog Shared Sub SelectionDescriptors(owner As IWin32Window) ' The variables that persist the current and selected nodes. Dim currentNodeDescriptor = New UABrowseNodeDescriptor() Dim selectionDescriptors = New UABrowseNodeDescriptorCollection() ' The initial current node (optional). currentNodeDescriptor.EndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' Repeatedly show the dialog until the user cancels it. Do Dim browseDialog = New UABrowseDialog() browseDialog.Mode.MultiSelect = True ' Set the dialog inputs from the persistence variables. browseDialog.InputsOutputs.CurrentNodeDescriptor = currentNodeDescriptor browseDialog.InputsOutputs.SelectionDescriptors.Clear() For Each browseNodeDescriptor As UABrowseNodeDescriptor In selectionDescriptors browseDialog.InputsOutputs.SelectionDescriptors.Add(browseNodeDescriptor) Next browseNodeDescriptor Dim dialogResult As DialogResult = browseDialog.ShowDialog(owner) If dialogResult <> DialogResult.OK Then Exit Do End If ' Update the persistence variables with the dialog output. currentNodeDescriptor = browseDialog.InputsOutputs.CurrentNodeDescriptor selectionDescriptors.Clear() For Each browseNodeDescriptor As UABrowseNodeDescriptor In browseDialog.InputsOutputs.SelectionDescriptors selectionDescriptors.Add(browseNodeDescriptor) Next browseNodeDescriptor Loop While True End Sub End Class End Namespace
Rem This example shows how the current node and selected nodes can be persisted between dialog invocations. Rem Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript . Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own Rem a commercial license in order to use Online Forums, and we reply to every post. Option Explicit Const DialogResult_OK = 1 ' The variables that persist the current and selected nodes. Dim CurrentNodeDescriptor: Set CurrentNodeDescriptor = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseNodeDescriptor") Dim SelectionDescriptors: Set SelectionDescriptors = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseNodeDescriptorCollection") ' The initial current node (optional). CurrentNodeDescriptor.EndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' Repeatedly show the dialog until the user cancels it. Do Dim BrowseDialog: Set BrowseDialog = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseDialog") BrowseDialog.Mode.MultiSelect = True ' Set the dialog inputs from the persistence variables. Set BrowseDialog.InputsOutputs.CurrentNodeDescriptor = CurrentNodeDescriptor BrowseDialog.InputsOutputs.SelectionDescriptors.Clear Dim BrowseNodeDescriptor: For Each BrowseNodeDescriptor In SelectionDescriptors BrowseDialog.InputsOutputs.SelectionDescriptors.Add BrowseNodeDescriptor Next Dim dialogResult1: dialogResult1 = BrowseDialog.ShowDialog If dialogResult1 <> DialogResult_OK Then Exit Do End If ' Update the persistence variables with the dialog output. Set CurrentNodeDescriptor = BrowseDialog.InputsOutputs.CurrentNodeDescriptor selectionDescriptors.Clear For Each BrowseNodeDescriptor In BrowseDialog.InputsOutputs.SelectionDescriptors SelectionDescriptors.Add BrowseNodeDescriptor Next Loop While True
# This example shows how the current node and selected nodes can be persisted between dialog invocations. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from System.Windows.Forms import * from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Forms.Browsing import * # The variables that persist the current and selected nodes. currentNodeDescriptor = UABrowseNodeDescriptor() selectionDescriptors = UABrowseNodeDescriptorCollection() # The initial current node (optional). currentNodeDescriptor.EndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer') # Repeatedly show the dialog until the user cancels it. while True: browseDialog = UABrowseDialog() browseDialog.Mode.MultiSelect = True # Set the dialog inputs from the persistence variables. browseDialog.InputsOutputs.CurrentNodeDescriptor = currentNodeDescriptor browseDialog.InputsOutputs.SelectionDescriptors.Clear() for browseNodeDescriptor in selectionDescriptors: browseDialog.InputsOutputs.SelectionDescriptors.Add(browseNodeDescriptor) dialogResult = browseDialog.ShowDialog() print(dialogResult) if dialogResult != DialogResult.OK: break # Update the persistence variables with the dialog output. currentNodeDescriptor = browseDialog.InputsOutputs.CurrentNodeDescriptor selectionDescriptors.Clear() for browseNodeDescriptor in browseDialog.InputsOutputs.SelectionDescriptors: selectionDescriptors.Add(browseNodeDescriptor) print('Finished.')
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Documentation Home, Send Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.